#ifndef __CARIOU_LINARD_INTERSECTION_HH__
#define __CARIOU_LINARD_INTERSECTION_HH__

#include "maths3d.h"

class SolidObject;

class Intersection : public Point3D
{

    protected:

        double        dist;
        bool          valid;
        SolidObject * object;

    public:

        Intersection();
        virtual ~Intersection();
        Intersection(const Intersection &);
        virtual Intersection& operator=(const Intersection &);

        Intersection(const Point3D &, double, SolidObject *);

        virtual double getDistance() const;
        virtual void   setDistance(const double &);

        virtual void setValid(bool);
        virtual bool isValid() const;

        virtual SolidObject * getObject() const;
        virtual void          setObject(SolidObject *);

        virtual bool operator<(const Intersection &) const;
        virtual bool operator>(const Intersection &) const;

};
#endif
